package com.util;

import net.sf.json.*;
import net.sf.json.util.PropertyFilter;

import java.util.List;
import java.util.Map;

import com.google.gson.JsonObject;

/**
 * 1、过滤JSON中的空值
 */

public class JsonUtils {

    /**
     * 过滤JSON中的空值
     * @return
     */
    public  static  JSONObject jsonFilterNull(JSONObject jsonObject){

        JsonConfig jsonConfig = new JsonConfig();
        PropertyFilter filter =new PropertyFilter() {
            @Override
            public boolean apply(Object object, String filedName, Object filedValue) {
                if(filedValue instanceof JSONArray){
                    JSONArray jsonArray = (JSONArray) filedValue;
                    if(JSONNull.getInstance().equals(filedValue)||jsonArray.size()==0){
                        return true;
                    }
                }
                if(filedValue instanceof  JSONObject){
                    JSONObject jsonObject1 = (JSONObject) filedValue;
                    return jsonObject1.size()==0?true:false;
                }

                return null==filedValue||(JSONNull.getInstance().equals(filedValue));
            }
        };

        jsonConfig.setJsonPropertyFilter(filter);
        JSONObject json=  JSONObject.fromObject(jsonObject,jsonConfig);
        return json;

    }

}
